package com.tedu.api.thread;

import org.junit.Test;

import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

/**
 * Lambda表达式：支持接口、抽象类【匿名内部类】创建
 * 支持集合遍历
 */

public class LambdaAPI {
    //支持集合遍历  list\set存值发方法一致
    @Test
    public void testList() {
        //List集合：重复并且有序的集合--存数据[账号信息，IP地址]
        List<String> list = new ArrayList<>();
        list.add("HLK");
        list.add("YJS");
        list.add("20240705");
        //查看集合信息--遍历三种：普通for，增强for，forEach方法
        for (String name : list) {
            System.out.println("增强for集合中元素：" + name);
        }
        //Lambda表达式支持集合---forEach(Lambda表达式)
        list.forEach(names -> System.out.println(names));
        /*list.forEach(new Consumer<String>() {
            @Override
            public void accept(String names) {
                System.out.println(names);
            }
        });*/
    }

    //Lambda表达式：支持集合遍历Map 键值对存值
    @Test
    public void testMap() {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "账号");
        map.put(2, "密码");
        map.put(3, "手机号码");
        map.forEach(new BiConsumer<Integer, String>() {
            @Override
            public void accept(Integer integer, String s) {
                System.out.println("键：" + integer + "\n" + "值：" + s);
            }
        });
        //map保存“Entry：键值对”   forEach()转成Lambda
        map.forEach((integer, s) -> System.out.println("键：" + integer + "\n" + "值：" + s));
    }
}


